package com.mars.admin.modules.post.mapper;

import com.mars.admin.modules.post.entity.Topic;
import com.mybatisflex.core.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 话题Mapper接口
 *
 * @author Mars
 * @version 1.0
 * @date 2025-01-07
 */
@Mapper
public interface TopicMapper extends BaseMapper<Topic> {

    /**
     * 根据分类查询话题列表
     *
     * @param category 分类
     * @return 话题列表
     */
    List<Topic> selectByCategory(@Param("category") String category);

    /**
     * 查询热门话题
     *
     * @param limit 限制数量
     * @return 热门话题列表
     */
    List<Topic> selectHotTopics(@Param("limit") Integer limit);

    /**
     * 查询官方话题
     *
     * @return 官方话题列表
     */
    List<Topic> selectOfficialTopics();

    /**
     * 更新话题统计数据
     *
     * @param topicId 话题ID
     * @param postsCount 帖子数量增量
     * @param followersCount 关注数量增量
     * @return 更新结果
     */
    int updateTopicStats(@Param("topicId") Long topicId, 
                        @Param("postsCount") Integer postsCount, 
                        @Param("followersCount") Integer followersCount);

    /**
     * 搜索话题
     *
     * @param keyword 关键词
     * @return 话题列表
     */
    List<Topic> searchTopics(@Param("keyword") String keyword);
} 